#pragma once
#include "GameboardModel.h"

class Command
{
protected:
	CommandAction* action;
	PlayerModel* player;

public:
	void exec() { doo(); validate(); }
	virtual void unexec() { undo(); cancel(); }
	virtual void doo() = 0;
	virtual void undo() = 0;
	virtual bool check() = 0;
	virtual void validate() = 0;
	virtual void cancel() = 0;
};

